﻿using Abp.Application.Services.Dto;
using Microsoft.VisualBasic.CompilerServices;
using Nest;
using System;
using System.Collections.Generic;
using System.Text;

namespace AbpBuild.LawManage.Dto
{
	/// <summary>
	/// 法律输入dto
	/// </summary>
    public class LawSearchOutParamDto
    {
        public int skip { get; set; } = 0;
        public int size { get; set; } = 100;
        public string sortorder { get; set; } = "judgeDate";
        public int Ascending { get; set; } = 1;
        public long counts { get; set; } = 1;
		/// <summary>
		/// 数据
		/// </summary>
        public List<LawSearchOutDTO> Datas { get; set; }
		/// <summary>
		/// 统计信息
		/// </summary>
		public LaWaggs aggs { get; set; }
	}


	public class LaWaggs
	{
		public LaWaggs()
		{
			agg = new Dictionary<string, List<Dictionary<string, long?>>>();
			laty = new List<LawAuthority>();
			lt = new List<LawType>();
			ll = new List<Laweff_level>();
			lDX = new List<LawDXtype>();
		}
		public Dictionary<string, List<Dictionary<string, long?>>> agg { get; set; }
		public List<LawAuthority> laty { get; set; }
		public List<LawType> lt { get; set; }
		public List<Laweff_level> ll { get; set; }
		public List<LawDXtype> lDX { get; set; }
	}



	/// <summary>
	/// 法律输出dto
	/// </summary>
	public class LawSearchOutDTO : EntityDto<string>
	{

		/// <summary>
		/// 名称  中华人民共和国民法典
		/// </summary>
		public string name { get; set; } //= 中华人民共和国民法典
		/// <summary>
		/// 地区  武汉
		/// </summary>
		public string area { get; set; } //= 武汉
		/// <summary>
		/// 制定机关  全国人民代表大会
		/// </summary>
		public List<string> authority { get; set; } //= 制定机关  全国人民代表大会
		/// <summary>
		/// 生效日期  开始
		/// </summary>
		public DateTime? effective_date { get; set; } //= jdoc["effective_date"].ToString(); //effective_date : "2017年11月04日" 生效日期
		/// <summary>
		/// 发布时间
		/// </summary>
		public DateTime? posting_date { get; set; } //= jdoc["posting_date"].ToString(); //posting_date : "2017年11月04日"  发布
		/// <summary>
		/// 文号    "主席令第80号"
		/// </summary>
		public string document_number { get; set; } //= 文号   中华人民共和国主席令第四十五号， "主席令第80号"
		/// <summary>
		/// 效力等级   法律
		/// </summary>
		public List<string> eff_level { get; set; } //= 效力等级 法律
		/// <summary>
		/// 当前状态  ：现行有效  失效   已被修改 尚未生效 部分失效  实际失效
		/// </summary>
		public string time_limited { get; set; } //= 现行有效  失效   已被修改 尚未生效 部分失效  实际失效 
		/// <summary>
		/// 大类 ：国家法律 ，地方法规，立法资料，司法资料
		/// </summary>
		public string type { get; set; }   // 大类：国家法律 ，地方法规，立法资料，司法资料
		/// <summary>
		/// 小类 ：国家法律：（法律立法解释 司法解释 行政法规 部门规章 其他文件）地方法规：，，，，，
		/// </summary>
		public string subtype { get; set; } //小类：（国家法律）法律立法解释 司法解释 行政法规 部门规章 其他文件
		/// <summary>
		/// 主题分类 民法商法总类,犯罪和刑事责任, 畜牧业, 社会救助，，，，，
		/// </summary>
		public List<string> lawtype { get; set; } //= 主题分类   民法商法总类   ,犯罪和刑事责任, 畜牧业, 社会救助等等
		public string navcontent { get; set; } //小类：（国家法律）法律立法解释 司法解释 行政法规 部门规章 其他文件
		public List<historyDTO> liblink { get; set; } //= 相关其他法律 相关解读
		public List<historyDTO> historys { get; set; } //= 法律沿革

	}
	/// <summary>
	/// 法律返回信息
	/// </summary>
	public class LawTotalSearchOutDTO : EntityDto<string>
	{
		/// <summary>
		/// 法律
		/// </summary>
		public LawSearchOutDTO lawsearchoutdto { get; set; } //= 中华人民共和国民法典
		/// <summary>
		/// 明细
		/// </summary>
		public List<LawDetailSearchOutDTO> lawdetailrecordsearchoutdtos { get; set; } 
	}

	/// <summary>
	/// 法条输出
	/// </summary>
	public class LawDetailSearchOutDTO : EntityDto<string>
	{
		/// <summary>
		/// 名称 中华人民共和国民法典
		/// </summary>
		public string name { get; set; } //= 中华人民共和国民法典
		/// <summary>
		/// 法律id
		/// </summary>
		public string pid { get; set; } //
		/// <summary>
		/// 法条  151
		/// </summary>
		public string tiaoint { get; set; } //": "151",
		/// <summary>
		/// 法条  第一百一十五条
		/// </summary>
		public string tiao { get; set; } //": "第一百一十五条",
		/// <summary>
		/// 内容
		/// </summary>
		public string text { get; set; } //": "ffff"
		/// <summary>
		/// 排序
		/// </summary>
		public string order { get; set; } //": "00001"
		/// <summary>
		/// 
		/// </summary>
		public string outerHtml { get; set; } //": "00001"

		public DateTime? effective_date { get; set; }
		/// <summary>
		/// 关联信息
		/// </summary>
		public List<LawDetailOtherInputDTO> lawdetailotherinputdtos { get; set; } //= jdoc["labels"].ToString(); //labels    标签

		public List<LawDetailOtherInputDTO> lawdetailrelation { get; set; } //法律关联法条 

		public List<LawDetailOtherInputDTO> lawdetailexplain { get; set; } //释义   

		public List<LawDetailOtherInputDTO> lawdetailcontinue { get; set; } //沿革信息

	}
}
